//1.引入vue
// import Vue from 'vue'
//2.引入axios库
import axiosNew from 'axios';
import {config} from '@/utils/config'//引入公用文件
// 引入 pinia  token


// 引入接口地址

axiosNew.defaults.timeout =3000;//请求超时时间


axiosNew.interceptors.request.use(//请求拦截
    (config:any) => {
        // const useUserData=loginStore.tokenStore();
        config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
       
        let token="";
       
        if (token) {//如果有token给请求头加上
            config.headers.common['X-Token'] =token
        }
       
        return config
    },

    err => {
        return Promise.reject(err);
    }

)
let router=useRouter();


axiosNew.interceptors.response.use(response => {//相应拦截
    const useUserData=loginStore.tokenStore();
    try{
        let {token}=response.data;
        if(token){//将登陆的返回的token保存下来
            useUserData.SETTOKEN(token);
        }
        
    }catch(err){
        console.log("在相应拦截这边其他请求不需要取token",err)
    };
  
    if(response.data.code==10001||response.data.code==402){//如果token为空或者过期，跳到登录
        useUserData.SETTOKEN("");
        router.push({path:"/login"});
       
    }
    return response;
}
    ,err=>{
        return Promise.reject(err)
    }
);
// axiosNew.defaults.baseURL=""
const axios=function({path,method="GET",data={}}:any={}){
    return new Promise((resolve,reject)=>{
        let datas:any={params:{...data}}
        let b=qs.parse(datas)
        
        if(method==="POST") datas={...{data}};
        console.log(qs.stringify(data),"参数---",b)
        axiosNew({
            url:`${host}/sys${path}`,
            method,
           ...b
        }).then(res=>{
            if(res.data.status==200){
                resolve(res.data.data)
            }else{
                resolve(-1)
                ElMessage.error(res.data.message)
            }
            
        }).catch(err=>{
            resolve(-1)
            ElMessage.error('请求失败，请稍后再试...')
        })
    })
};
export default axios



